package com.wei.czz.framework.common.service;

import com.wei.czz.common.tool.PageDto;
import com.wei.czz.common.vo.common.fileFlow.FileFlowFormVo;
import com.wei.czz.framework.common.entity.FileFlowEntity;

import java.util.List;

/**
 * Created by IntelliJ IDEA.
 *
 * @author wei
 * date: 2025-03-23 12:39:15
 * className: FileFlowService
 * version: 1.0
 * description:
 */
public interface FileFlowService {

    /**
     * 保存或编辑文件上传记录操作
     *
     * @param fileFlow 文件上传记录对象
     */
    void saveOrEdit(FileFlowEntity fileFlow);

    /**
     * 复制文件上传记录操作
     *
     * @param id               主键
     * @param originalFileName 原始文件名称
     */
    Long copy(Long id, String originalFileName);

    /**
     * 获取文件上传记录操作
     *
     * @param fileNo 文件编号
     * @return 文件上传记录对象
     */
    FileFlowEntity find(Long fileNo);

    /**
     * 获取文件上传记录操作
     *
     * @param fileHash 文件哈希值
     * @return 文件上传记录对象
     */
    FileFlowEntity find(String fileHash);

    /**
     * 获取文件上传记录操作
     *
     * @param fileNoList   文件编号列表
     * @param fileHashList 文件哈希值列表
     * @return 文件上传记录对象列表
     */
    List<FileFlowEntity> findList(List<Long> fileNoList, List<String> fileHashList);

    /**
     * 分页获取文件上传记录列表操作
     *
     * @param formVo 查询参数对象
     * @return 文件上传记录分页数据对象
     */
    PageDto<FileFlowEntity> getFileFlowPageList(FileFlowFormVo formVo);

}

